﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data.Linq;
using System.Linq;
using System.Security.Cryptography;
using DevExpress.XtraEditors;

namespace QuanLyKhachSan
{
    public partial class FrmDoiMatKhau : DevExpress.XtraEditors.XtraForm
    {
        DataClassesKhachSanDataContext dc;

        // Business Object <-> Persistence Object (LinQ) - Tạo mới, thêm, sửa, xóa <-> Data store (SQL Server 2005)
        // Business Layer  <-> Data Access Layer <-> Storage Layer
        

        // Cờ cho biết nội dung mật khẩu đã thay đổi hay thêm mới
        Boolean flagChangePassword = false;

        public FrmDoiMatKhau()
        {
            InitializeComponent();

            dc = new DataClassesKhachSanDataContext(SystemInfo.pub_ConnString);
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void btnThayDoiMatKhau_Click(object sender, EventArgs e)
        {
            var nguoiDung = dc.NGUOI_DUNGs;

            try
            {
                if (txtMatKhauMoi.Text.Trim() != "")
                {
                    if (txtMatKhauMoi.Text.Trim() == txtMatKhauMoiLapLai.Text.Trim())
                    {
                        foreach (var c in nguoiDung)
                        {
                            if (c.ND_Ten.Trim() == SystemInfo.pub_AppUserName.Trim())
                            {

                                if (EncryptionUtility.EncryptString(txtMatKhauCu.Text, SystemInfo.pub_KeyForEncrytion) == c.ND_MatKhau)
                                {
                                    c.ND_MatKhau = EncryptionUtility.EncryptString(txtMatKhauMoi.Text, SystemInfo.pub_KeyForEncrytion);
                                    dc.SubmitChanges();
                                    SystemInfo.pub_AppUserPassword = txtMatKhauMoi.Text;
                                    flagChangePassword = true;
                                }
                                break;
                            }
                        }

                        if (flagChangePassword == true)
                        {
                            XtraMessageBox.Show("Đổi mật khẩu thành công.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            dxErrorProvider1.ClearErrors();
                            dxErrorProvider2.ClearErrors();
                        }
                        else
                        {
                            XtraMessageBox.Show("Đổi mật khẩu không thành công. Mật khẩu cũ không đúng.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }

                    }
                    else
                    {
                        dxErrorProvider1.SetError(txtMatKhauMoi, "Mật khẩu mới và mật khẩu mới lặp lại nội dung phải giống nhau.");
                        dxErrorProvider2.SetError(txtMatKhauMoiLapLai, "Mật khẩu mới và mật khẩu mới lặp lại nội dung phải giống nhau.");
                    }
                }
                else
                {
                    dxErrorProvider1.SetError(txtMatKhauMoi, "Mật khẩu không được để rỗng.");
                }
            }
            catch
            {
        
            }
        }

        private void btnNhapLaiThongTin_Click(object sender, EventArgs e)
        {
            txtMatKhauCu.Text = "";
            txtMatKhauMoi.Text = "";
            txtMatKhauMoiLapLai.Text = "";

            dxErrorProvider1.ClearErrors();
            dxErrorProvider2.ClearErrors();
        }

        private void FrmDoiMatKhau_Load(object sender, EventArgs e)
        {

        }
    }
}